// 测试Number静态属性

console.log( Object.getOwnPropertyNames( Number ) );

console.log( 'min value : ' , Number.MIN_VALUE );
console.log( 'max value : ' , Number.MAX_VALUE );

console.log( 'min integer : ' , Number.MIN_SAFE_INTEGER );
console.log( 'max integer : ' , Number.MAX_SAFE_INTEGER );

console.log( Number.NEGATIVE_INFINITY );
console.log( Number.POSITIVE_INFINITY );

console.log( Number.NaN );

console.log( '- '.repeat( 20 ) );

let n = 9527 ;
// 判断指定 number 值是否是有穷大
console.log( Number.isFinite( n ) ); // true

let m = 100 / 0 ;
console.log( Number.isFinite( m ) ); // false

let s = 'ABCDEF' ;
// Number.isNaN() 方法确定传递的值是否为 NaN，并且检查其类型是否为 Number。
console.log( 'Number.isNaN: ' , Number.isNaN( s ) ); // false
// Number.isNaN() 是原来的全局的 isNaN() 的更稳妥的版本。
console.log( 'global.isNaN: ' , global.isNaN(s) ); // true

let x = 3.14 ;
console.log( Number.isInteger( x ) ); // false

let y = Number.MAX_VALUE + 1 ;
console.log( Number.isSafeInteger( y ) ); // false

// 当一个整数超出 [ Number.MIN_SAFE_INTEGER , Number.MAX_SAFE_INTEGER ] 范围时，
// 应该使用 bigint 来表示，而不是使用 number 类型
let integer = BigInt( Number.MAX_SAFE_INTEGER ) + 1n ;
console.log( integer );